package com.alpha.ejb.session.employee;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.alpha.tables.Employee;

/**
 * Session Bean implementation class EmployeeManager
 */
@Stateless
public class EmployeeManager implements EmployeeManagerRemote {

	@PersistenceContext
	EntityManager m_GestionnaireEntites;
	
    /**
     * Default constructor. 
     */
    public EmployeeManager() {
        // TODO Auto-generated constructor stub
    }

    /**
     * Ajoute un employé dans la base de données
     */
    public void AjouterEmploye(Employee p_Employe)
    {
    	m_GestionnaireEntites.persist(p_Employe);
    }
    
    /**
     * Récupère tous les employés
     */
    @SuppressWarnings("unchecked")	//permet d'éviter la vérification du transtypage explicite
	public List<Employee> GetEmployes()
    {
    	return (List<Employee>)m_GestionnaireEntites.createNamedQuery("FindAllEmployees").getResultList();
    }
    
    /**
     * Récupère l'employé demandé 
     */
    public Employee GetEmployeParNomUtilisateur(String p_NomUtilisateur)
    {
    	return (Employee)m_GestionnaireEntites.createNamedQuery("FindEmployeeByUsername").setParameter("p_Username", p_NomUtilisateur).getSingleResult();
    }
    

}
